﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace JoyeriaProject
{
    public partial class frmAgent : Form
    {
             ModeloDatos MD = new ModeloDatos(0);

        public frmAgent()
        { 
            InitializeComponent(); 
        }

        private void btnExits_Click(object sender, EventArgs e)
        {
            if (sender.ToString().IndexOf("Cerrar") > 0)
            {
                btnExits.Text = "Cancelar";
                btnSave.Text = "Nuevo";
                txtFind.Enabled = true;
                txtFind.BackColor = Color.White;
                btnFind.Enabled = true;

                txtNombre.BackColor = Color.Silver;
                txtApellidos.BackColor = Color.Silver;
                txtTel.BackColor = Color.Silver;

                clearAlltxt();
            }
            else
            {
                Dispose();
            }
        }

        private void clearAlltxt()
        {
            txtNombre.Text = "";
            txtApellidos.Text = "";
            txtTel.Text = "";
            txtFind.Text = "";
            MD.Agent = null;
        }

        private void btnFind_Click(object sender, EventArgs e)
        {
            MD.Agent = null;
            if (txtFind.Text != string.Empty)
            {
                try
                {
                    MD.Agent = MD.GetAgents().First
                        (
                            n =>  
                            n.Nombre.ToUpper().Contains(txtFind.Text.ToUpper())    ||
                            n.Apellidos.ToUpper().Contains(txtFind.Text.ToUpper()) ||
                            n.Telefono.Contains(txtFind.Text)
                          );

                    txtNombre.Text =  MD.Agent.Nombre;
                    txtApellidos.Text = MD.Agent.Apellidos;
                    txtTel.Text = MD.Agent.Telefono;

                    txtNombre.Enabled = true;
                    txtApellidos.Enabled = true;
                    txtTel.Enabled = true;

                    txtNombre.BackColor = Color.White;
                    txtApellidos.BackColor = Color.White;
                    txtTel.BackColor = Color.White;

                    txtFind.Enabled = false;
                    btnFind.Enabled = false;
                    txtFind.BackColor = Color.Silver;
    
                    btnSave.Text = "Editar";
                    btnExits.Text = "Cerrar";
                }
                catch (Exception ex)
                {
                    clearAlltxt();
                    MessageBox.Show("NO ENCONTRADO", "LO SIENTO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);      
                }      
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (sender.ToString().IndexOf("Nuevo") > 0)
            {
                btnSave.Text = "Guardar";
                clearAlltxt();

                txtNombre.BackColor = Color.White;
                txtApellidos.BackColor = Color.White;
                txtTel.BackColor = Color.White;

                txtFind.Enabled = false;
                txtFind.BackColor = Color.Silver;
                
                btnExits.Text = "Cerrar";

                btnFind.Enabled = false;
            }
            else if (sender.ToString().IndexOf("Guardar") > 0)
            {
               MD.Agent = new Agentes
                                {
                                    ID = System.Guid.NewGuid().ToString(),
                                    Nombre = txtNombre.Text,
                                    Apellidos = txtApellidos.Text,
                                    Telefono = txtTel.Text
                                };

                  if(MD.Add<Agentes>(ref MD.Agent))
                  {
                    MessageBox.Show("El Agente de Ventas se Registro Satisfactoriamente", "LISTO!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Dispose();
                  }
                  else
                  {
                     MessageBox.Show("Hubo un problema al grabar el registro del Agente de Ventas", ":(  HUBO UN PROBLEMA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                  }
            }
            else if (sender.ToString().IndexOf("Editar") > 0)
            {
                MD.Agent.Nombre = txtNombre.Text;
                MD.Agent.Apellidos = txtApellidos.Text;
                MD.Agent.Telefono = txtTel.Text;

                if (MD.Update<Agentes>(ref MD.Agent))
                {
                    MessageBox.Show("El Agente de Ventas se Actualizó Satisfactoriamente", "LISTO!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Dispose();
                }
                else
                {
                    MessageBox.Show("Hubo un problema al actualizar el registro del Agente de Ventas", ":(  HUBO UN PROBLEMA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void frmAgent_Load(object sender, EventArgs e)
        {
            txtFind.Focus();
        }
    }
}
